#ifndef _FLOADERGDI_H_
#define _FLOADERGDI_H_

#include "FLoader.h"

namespace Font
{

	class LoaderGDI : public Loader
	{
	
	public:
	
		LoaderGDI(Library* a_Library);
		~LoaderGDI();

		bool LoadDefault();
		Face* LoadFace(Family* a_Family, const tb::String& a_Settings);

		Metrics* CreateMetrics(Family* a_Family, unsigned int a_Style, CharMap* a_CharMap);

		Family* GetCurrentFamily();
	
	protected:

		friend int CALLBACK GDILoopCallback(
			const LOGFONTW* a_Font,
			const TEXTMETRICW* a_Metrics,
			DWORD a_Type,
			LPARAM a_Param
		);
		friend int CALLBACK GDISingleCallback(
			const LOGFONTW* a_Font,
			const TEXTMETRICW* a_Metrics,
			DWORD a_Type,
			LPARAM a_Param
		);

		Face* m_FaceLoaded;

		Family* m_FamilyCurrent;
	
	}; // class LoaderGDI

}; // namespace Font
	
#endif